package com.cy.ppj.service.account;

import com.cy.ppj.model.CacheBean;
import com.cy.ppj.model.PageBean;
import com.cy.ppj.model.domian.order.CommissionRecord;
import com.cy.ppj.model.query.CommissionRecordQuery;
import com.cy.ppj.model.query.commission.CommissionRecordAdminQuery;
import com.cy.ppj.model.vo.CommissionRecordVO;
import com.cy.ppj.model.vo.admin.commission.CommissionRecordAdminVO;
import com.cy.ppj.model.vo.admin.order.OrderCommissionAdminStatisticsVO;
import com.cy.ppj.model.vo.front.account.CommissionInfoVO;
import com.cy.ppj.model.vo.front.account.CommissionStatisticsVO;

import java.util.Date;

public interface CommissionRecordService {

    void addComissionRecord(CommissionRecord commissionRecord);

    /**
     * 佣金统计
     *
     * @return
     */
    OrderCommissionAdminStatisticsVO statistics();

    /**
     * 查询用户进半年的佣金统计
     *
     * @param userId
     * @return
     */
    CacheBean<CommissionStatisticsVO> commissionStatistics(Long userId, Date time);


    /**
     * 前台-佣金记录分页
     *
     * @return
     */
    PageBean<CommissionRecordVO> commissionRecord(CommissionRecordQuery commissionRecordQuery);

    /**
     * 前台-我的佣金页面信息
     *
     * @param userId
     * @return
     */
    CommissionInfoVO queryUserCommissionInfo(Long userId);

    /**
     * 前台-我的佣金页面信息2
     *
     * @param userId
     * @return
     */
    CommissionInfoVO queryUserCommissionInfo2(Long userId);

    /**
     * 后台-佣金发放记录列表，分页
     * 
     * @param query
     * @return
     */
	PageBean<CommissionRecordAdminVO> selectCommissionRecordAdminList(CommissionRecordAdminQuery query);

}
